Обновлено: 19.07.2007
Расписание регламентного задания состоит из месячного, недельного и дневного расписания, а также одного или нескольких расписаний в пределах дня.
Создание нового расписания лучше начать с указания даты начала и даты окончания (во встроенном языке - свойства ДатаНачала и ДатаКонца расписания регламентного задания). В механизме расписаний существует соглашение, что если какой-то элемент расписания не указан, то он не участвует в создании расписания. Например, если мы не указали дату окончания, то расписание будет выполняться неограниченно долго. Также, если мы не указали дату начала, то расписание будет выполняться от текущего момента. Расписание не будет выполняться до даты начала, и после даты окончания расписания.
После того, как мы указали дату начала и окончания расписания нужно задать его периодичность, т.е. с каким периодом в днях, нужно выполнять расписание (задание периодичности в пределах дня мы рассмотрим далее). Периодичность в днях задается в диалоге редактирования расписания параметром Повторять каждые ... дней (во встроенном языке - свойство ПериодПовтораДней расписания регламентного задания). Указав значение 0, мы задаем выполнение расписания только в пределах текущего дня. Указав значение 1, мы задаем выполнение расписания - каждый день. Указав значение 2 - через день и т.д.
Далее определим недельное и месячное расписания. Недельное и месячное расписания удобно рассматривать в виде фильтра по отношению к основному расписанию, т.е. они накладывают дополнительные ограничения на выполнение основного расписания. Недельное расписание указывает, по каким дням недели (в дополнение к основному расписанию, которое, как мы помним, выполняется с заданной периодичностью) следует выполнять расписание (во встроенном языке - свойство ДниНедели расписания регламентного задания). Например, расписание:
Копировать в буфер обменаВыполнять: c 11 июля 2007 г. каждый 2-й день, по дням недели [понедельник, среда, пятница ]; один раз в день
будет выполняться через день, но только по понедельникам, средам и пятницам. Если понедельник, среда или пятница выпадут на пропускаемый день, то расписание выполнено не будет.
В недельном расписании также можно задать период повтора недель - Повторять каждые ... недель (во встроенном языке - свойство ПериодНедель расписания регламентного задания). Указав значение 1, мы задаем выполнение расписания каждую неделю, 2 - через неделю (значение 0 не используется). Значение периода повтора недель является дополнением к основному расписанию. Например, расписание:
Копировать в буфер обменаВыполнять: каждый день, по дням недели [вторник ], через 1 нед.; один раз в день
будет выполняться через неделю по вторникам.
Месячное расписание определяется аналогично недельному. Указав месяцы (во встроенном языке - свойство Месяцы расписания регламентного задания), мы задаем в дополнение к основному расписанию, по каким месяцам будет выполняться расписание. Указав выполнять в ... день месяца (во встроенном языке - свойство ДеньВМесяце расписания регламентного задания), мы задаем - по каким дням, начиная с начала (положительные значения) или с конца (отрицательные значения), будет выполняться расписание. Например, расписание:
Копировать в буфер обменаВыполнять: каждый день, по дням недели [понедельник ], последнего числа месяца; один раз в день
будет выполнено только в те понедельники, которые приходятся на конец месяца.
Указав выполнять в ... день недели в месяце (во встроенном языке - свойство ДеньНеделиВМесяце расписания регламентного задания), мы задаем порядковый номер дня недели в месяце, когда нужно выполнять расписание. Положительные значения указывают порядковый номер с начала месяца, отрицательные - с конца. Следует учесть, что порядковый номер дня недели в общем случае не совпадает с порядковым номером недели в месяце. Например, расписание:
Копировать в буфер обменаВыполнять: каждый день, по дням недели [понедельник ], 1-й день недели в месяце; один раз в день
будет выполняться каждый первый понедельник месяца.
Рассмотрим, как определять расписание в течение дня. Расписание в течение дня задается в дополнение к основному расписанию, т.е. планировщик заданий сначала определяет, по каким дням следует выполнять расписание. Если текущий день подходит, то планировщик определяет, как в течение дня должно выполняться расписание. Механизм расписаний позволяет задавать несколько расписаний в течение дня.
Для начала зададим время начала и время окончания расписания (во встроенном языке - свойство ВремяНачала и ВремяКонца расписания регламентного задания). Время начала определяет, с какого времени будет выполняться расписание. Если время начала не задано, то берется время начала дня (00:00). Время окончания определяет, по какое время будет выполняться расписание. Если время конца не задано, то берется время конца дня (меньше 00:00 следующего дня).
Далее нужно задать периодичность в течение дня, когда будет выполняться расписание. Параметр повторять через ... сек. (во встроенном языке - свойство ПериодПовтораВТечениеДня расписания регламентного задания) указывает, через сколько секунд после начала предыдущего запуска нужно запускать следующий (если предыдущий запуск не завершен, будет выполнено ожидание его завершения). Нулевое значение указывает на однократное в течение дня выполнение расписания. Например, расписание:
Копировать в буфер обменаВыполнять: каждый день; каждые 120 сек.
будет выполняться каждые две минуты.
Аналогичный параметр повторять с паузой ... сек. (во встроенном языке - свойство ПаузаПовтора расписания регламентного задания) задает период повтора, но только с момента завершения предыдущего запуска.
Дополнительные параметры завершать после и завершать через (во встроенном языке - свойства ВремяЗавершения и ИнтервалЗавершения расписания регламентного задания) определяют время и интервал в секундах с момента запуска, после которого задание будет принудительно завершено, если к этому времени оно не завершилось самостоятельно. Эти параметры удобно применять, когда нужно принудительно завершать слишком долгие задания (например, ночные регламентные процедуры), чтобы они не мешали нормальной работе пользователей.
Следует учесть, что периоды, которые мы рассмотрели, задают минимальное время. Например, период повтора в течение дня задает минимальное время, через которое будет запущено задание. Если по каким-либо причинам, задание не может быть запущено в заданное время, запуск откладывается. Если отложенный запуск становится возможным в течение этого же дня, то при вычислении расписания используется время последнего запуска этого дня. Если запуск откладывается до следующего дня, до время последнего запуска сбрасывается, т.е. считается, что задание этим днем не выполнялось.